from machine import ADC, Pin
from mpython import *

import time

# 注意：必须校对时间，使用 Thonny 编程时不需要， Thonny 会自动校对。

adc = ADC(Pin(Pin.P0))  # 创建 ADC 对象
adc.atten(adc.ATTN_11DB)  # 设置 3.3v 范围
adc.width(3)  # 设置数据宽度

def get_time():
    """获取当前时间，为了便于数据整理，强制性将秒设为零"""
    t = time.localtime()
    return "%02d:%02d:00" % (t[3], t[4])

def get_mean(l):
    """求类别平均值"""
    x = sum(l) - min(l) - max(l)  # 求和，去最大最小值
    return x / len(l)

f = open("confirm.csv", "w")  # 新建一个文件进行写入

history_sign = []

while True:
    time.sleep(1)
    vaule = abs(adc.read() - 1876.467105)
    history_sign.append(vaule)

    # 按照时间进行判断，可能会差1到5秒
    t = time.localtime()
    if 0 <= t[5] <= 5 and len(history_sign) >= 10:
        f.write(get_time() + "," + str(get_mean(history_sign)) + "\n")
        f.flush()
        print(get_time() + " 记录电信号", get_mean(history_sign))
        history_sign.clear()
        
        
        